unit Unit2;

interface

uses Vcl.Graphics, System.Types, System.Classes;

type
  TMyClass = class(TPersistent)
  private
    FCanvas: TCanvas;
    FColor: TColor;
  public
    constructor Create(Canvas: TCanvas); overload;
    constructor Create(Canvas: TCanvas; Color: TColor); overload;
    procedure DrawCircle(CenterPoint: TPoint; Radius: integer); overload;
    procedure DrawCircle(XC, YC: integer; Radius: integer); overload;
  end;

implementation

{ TMyClass }

constructor TMyClass.Create(Canvas: TCanvas);
begin
  FColor := clRed;
  FCanvas := Canvas;
end;

constructor TMyClass.Create(Canvas: TCanvas; Color: TColor);
begin
  FColor := Color;
  FCanvas := Canvas;
end;

procedure TMyClass.DrawCircle(XC, YC, Radius: integer);
begin
  FCanvas.Ellipse(XC - Radius, YC - Radius, XC + Radius, YC + Radius);
end;

procedure TMyClass.DrawCircle(CenterPoint: TPoint; Radius: integer);
begin
  FCanvas.Ellipse(CenterPoint.X - Radius, CenterPoint.Y - Radius,
    CenterPoint.X + Radius, CenterPoint.Y + Radius);
end;

procedure Test;
var
  a: TMyClass;
begin
  a := TMyClass.Create;
  // a.DrawCircle(
end;

end.
